﻿#ifndef COMPONENT_H
#define COMPONENT_H

#include <QString>
#include <memory>

using namespace std;

class Component
{
protected:
    QString m_name;
public:
    Component(QString name);
    virtual void Add(const shared_ptr<Component>& c) = 0;
    virtual void Remove(const shared_ptr<Component>& c) = 0;
//    virtual void Add(Component* c) = 0;
//    virtual void Remove(Component* c) = 0;
    virtual void Display(int depth) = 0;
};

#endif // COMPONENT_H
